#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5+100,M = 2e5;
int T,n,m,k,w,b[N];
// int g[N][N],s[N][N];
int main() {
    cin >> T;
    while (T--)
    {
        cin >> n >> m >> k;
        vector<vector<int> > g(n+100,vector<int>(m+100,0));
        vector<vector<int> > s(n+100,vector<int>(m+100,0));
        for(int i=1;i<=n-k+1;i++) {
            for(int j=1;j<=m-k+1;j++) {
                //i,j   i+k-1,j+k-1
                g[i][j] += 1;
                g[i+k][j] += -1;
                g[i][j+k] += -1;
                g[i+k][j+k] += 1;    
            }
        }
        cin >> w;
        for(int i=1;i<=w;i++) cin >> b[i];
        sort(b+1,b+w+1);
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=m;j++) {
                s[i][j] = s[i-1][j]+s[i][j-1]-s[i-1][j-1]+g[i][j];
            }
        }
        vector<int> a;
        for(int i=1;i<=n;i++) {
            for(int j=1;j<=m;j++) {
                // printf("%2d", s[i][j]);
                a.push_back(s[i][j]);
            }
            // printf("\n");
        }
        sort(a.begin(),a.end());
        long long sum = 0;
        for(int i=w,j=n*m-1;j>=0 && i>=1;i--,j--) {
            sum += a[j]*1LL * b[i];
        }
        cout << sum;
        cout << endl;
    }
    
    return 0;
} 